package demo.annotation;

import org.springframework.core.annotation.AliasFor;
//3、注解中的隐性别名
@ContextConfiguration
public @interface MyTestConfig2 {
	/**
	 * 如果注解中的一个或多个属性声明为同一个元注解属性的属性重写（直接地或传递地重写）
	 * 那么这些注解会被当作彼此的隐性别名集来对待
	 * 结果是它们的行为类似于注解中的显性别名
	 * 如下所示:@MyTestConfig中,value,groovyScripts和xmlFiles
	 * 都是复写了@ContextConfiguration中locations属性的，因此这
	 * 三个属性是彼此的隐性别名。
	 *
	 * 作者：chzne
	 * 链接：https://www.jianshu.com/p/d6bba708100d
	 * 来源：简书
	 * 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
	 */

	@AliasFor(annotation = ContextConfiguration.class, attribute = "locations")
	String[] value() default {};

	@AliasFor(annotation = ContextConfiguration.class, attribute = "locations")
	String[] groovyScripts() default {};

	@AliasFor(annotation = ContextConfiguration.class, attribute = "locations")
	String[] xmlFiles() default {};
}
